package com.jn.principle.inversion;

/**
 * 依赖倒置原则
 *
 * @author 江南大学1033190417
 * @date 2022/4/9 22:58
 */
public class DependecyInversion {
    public static void main(String[] args) {
        new Person().receive(new Email());
    }
}

class Email{
    public String getInfo(){
        return "电子邮件";
    }
}

//完成person接收消息 的功能
//方法1完成
/*
   简单容易实现
   问题：
   如果获取的消息时微信，短信，就要新增新类，person也要增加方法

   解决：引入一个抽象的接口IReceiver,表示接收者，person类与IReceiver发生依赖
   Email，WEIXIN等都实现IReceiver

 */
class Person{
    public void receive(Email email){
        System.out.println(email.getInfo());
    }
}
